﻿namespace KLF.Lib.Browser.XMLHTTP
{
    /// <summary>
    /// A Blob object represents a file-like object of immutable, raw data. 
    /// Blobs represent data that isn't necessarily in a JavaScript-native 
    /// format. The File interface is based on Blob, inheriting blob 
    /// functionality and expanding it to support files on the user's system.
    /// 
    /// An easy way to construct a Blob is by using the BlobBuilder interface, 
    /// which lets you iteratively append data to a blob, then retrieve the 
    /// completed blob when you're ready to use it for something. Another 
    /// way is to use the slice() method to create a blob that contains a 
    /// subset of another blob's data.
    /// </summary>
    public interface IBlob
    {
        ulong size { get; }

        IBlob slice(ulong start, ulong end, string contentType);
        IBlob slice(ulong start, ulong end);
        IBlob slice(ulong start);
        IBlob slice();

        string type { get; }


    }
}
